<?php defined( '_JEXEC' ) or die( 'Restricted access' );

//Importa el controlador base
require_once( JPATH_COMPONENT.DS.'controller.php' );

//Si viene en la peticion, se importa el controlador especifico
//El controlador especifico hereda  del controlador base, por eso es necesario importar tambien el base
if($controller = JRequest::getWord('controller')) 
{
    $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
    if (file_exists($path)) 
    {
        require_once $path;
    } 
    else 
    {
        $controller = '';
    }
}
// Se crea el controlador
$classname    = 'AplicacionController'.$controller;
$controller   = new $classname( );
//El nombre del controlador es obtenido dinamicamente con el string $classname

// Sele pasa la tarea ( task) al controlador y se ejecuta su metodo execute
$controller->execute( JRequest::getVar( 'task' ) );

// Redirect if set by the controller
$controller->redirect();
?>